package dataStruct;


/**
 * 剑指 Offer 05. 替换空格
 * <p>
 * 请实现一个函数，把字符串 s 中的每个空格替换成"%20"。
 * <p>
 * 输入：s = "We are happy."
 * <p>
 * 输出："We%20are%20happy."
 */
public class replaceSpace {
    /**
     * 第一种方法，直接调用String的函数
     * <p>
     * 执行用时：0 ms, 在所有 Java 提交中击败了100.00%的用户
     * <p>
     * 内存消耗：35.8 MB, 在所有 Java 提交中击败了 98.66% 的用户
     * <p>
     * 通过测试用例：27 / 27
     */
    public String replaceSpace_1(String s) {
        return s.replace(" ", "%20");
    }

    /**
     * 第二种方法，使用一个StringBuilder来构建新的字符串，遍历输入字符串的每一个字符，判断是不是空格做相应的操作
     * <p>
     * 执行用时：0 ms, 在所有 Java 提交中击败了 100.00% 的用户
     * <p>
     * 内存消耗：36.4 MB, 在所有 Java 提交中击败了 23.64% 的用户
     * <p>
     * 通过测试用例：27 / 27
     */
    public static String replaceSpace_2(String s) {
        StringBuilder sb = new StringBuilder();
        for (char c : s.toCharArray()) {
            if (c != ' ')
                sb.append(c);
            else
                sb.append("%20");
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        //        System.out.println(replaceSpace_1("We are happy."));
        System.out.println(replaceSpace_2("We are happy."));
    }
}
